str = "hi-韩顺平教育"
#通过索引方式访问指定元素
print(str[3])
#不能修改元素
# str[3] = "李"
#TypeError: 'str' object does not support item assignment
# print(str[3])
# print(id(str))

# 演示字符串的常用操作
str_names = "jack tom mary hsp nono tom"
#len(str):字符串的长度,也就是包含多少字符串
print(f"{str_names}有{len(str_names)}个字符")

#str.replace(old , new , [,count]):返回字符串的副本,其中出现的所有字符串 old 都被替换成new
#如果给出了可选参数count,只替换count次出现
"""
    说明:返回字符串的副本,表示原来的字符串是不变的。而是返回一个新的字符串
"""
#需求将 “jack” 替换成 "杰克" , 只替换一个
str_names_new = str_names.replace("jack" , "杰克" , 1)
print("str_names_new:" , str_names_new)
print("str_names:" , str_names)

"""
    str.split(sep=None , maxsplit = -1):
    返回一个由字符串内单词组成的列表,使用sep作为分隔字符串,如果给出了maxsplit
    则最多进行maxsplit次拆分(因此,列表最多会有maxsplit+1个元素).如果maxsplit
    未指定或者为-1的时候，则不限制拆分次数【进行所有可能的拆分】 这里是说明 这这是api而已
    别人写好的  咱会用就行  要是写咱自己也能写  基础要扎实 但是现在没有必要
"""
str_names_split = str_names.split(" ")
print(str_names_split , type(str_names_split))
#原来的字符串并没有发生变化
print(str_names)


#str.count(sub) : 统计指定字符串在字符串中出现的次数
#统计tom在字符串中出现了几次
print("tom在字符串中出现的次数:" , str_names.count('tom'))

#str.index(sub):从字符串中找出指定字符串中第一个匹配项的索引位置
print("tom第一次出现的索引位置是:" , {str_names.index("tom")})

#str.strip([chars]):返回原字符串的副本,移除其中的前导和末尾字符.chars 为指定
#要移除的字符的字符串
#老韩说明：这个方法，通常可以用于去除前后的空格,或者去掉指定的某些字符
#需求，去掉字符的前后的空格
str_names_strip = str_names.strip(" ")
print(str_names_strip)

print("  toms   ".strip())
print("123toms321".strip("123"))

#str.lower():返回原字符串小写的副本,不影响原来的字符
#需求，将字符串全部改成小写
str_names = "hspHSP"
str_name_lower = str_names.lower()
print(str_name_lower)
#原来的字符不发生变化
print(str_names)

#str.upper():返回原字符串大写的副本,不影响原来的字符
#需求：将字符串全部改成大写
str_names_upper = str_names.upper()
print(str_names_upper)